import request from './request';
import axios from 'axios';

// 商品管理API（后台）
export function getProductsAdmin(params) {
  return request({
    url: '/admin/products',
    method: 'get',
    params
  });
}

export function createProduct(data) {
  return request({
    url: '/admin/products',
    method: 'post',
    data
  });
}

export function updateProduct(id, data) {
  return request({
    url: `/admin/products/${id}`,
    method: 'put',
    data
  });
}

export function deleteProduct(id) {
  return request({
    url: `/admin/products/${id}`,
    method: 'delete'
  });
}

export function uploadProductImage(file) {
  const formData = new FormData();
  formData.append('image', file);
  
  // 使用配置好的request实例，确保携带token
  // 注意：不要手动设置Content-Type，让浏览器自动设置（包含boundary）
  const adminToken = localStorage.getItem('adminToken');
  return axios.post('/api/admin/products/upload-image', formData, {
    timeout: 60000, // 60秒超时，支持大文件上传
    headers: {
      'Authorization': `Bearer ${adminToken}`
    }
  }).then(response => response.data);
}

// 多文件上传（支持多个图片/视频）
export function uploadProductImages(files) {
  const formData = new FormData();
  // files可以是FileList或File数组
  const fileArray = Array.isArray(files) ? files : Array.from(files);
  fileArray.forEach(file => {
    formData.append('images', file);
  });
  
  // 携带管理员token
  const adminToken = localStorage.getItem('adminToken');
  return axios.post('/api/admin/products/upload-images', formData, {
    timeout: 120000, // 120秒超时，支持多个大文件上传
    headers: {
      'Authorization': `Bearer ${adminToken}`
    }
  }).then(response => response.data);
}

